﻿Imports EVOLTA.Promocion.Bl.Bc
Imports EVOLTA.Promocion.Bl.Be

Partial Class Devoluciones_Devoluciones
    Inherits System.Web.UI.Page

    Private devoluciones As List(Of Edevolucion) = Nothing
    Private separaciones As List(Of EseparacionVenta) = Nothing
    Dim expression As String = Nothing
    Dim direction As SortDirection = SortDirection.Ascending

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.CacheControl = "no-cache"
        Response.AddHeader("Pragma", "no-cache")
        Response.Expires = -1
        '***********************************************************'
        If Not IsPostBack Then
            cargarDevolucion()
        End If
    End Sub
    Protected Sub gvwDevolucion_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
    Handles gvwDevolucion.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Attributes("OnClick") = Page.ClientScript.GetPostBackClientHyperlink(Me.gvwDevolucion, "Select$" + e.Row.RowIndex.ToString)
            e.Row.Style.Add("cursor", "hand")
        End If
    End Sub
    Protected Sub gvwDevolucion_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles gvwDevolucion.RowEditing
        cargarMotivoDevolucion()
        Dim id As Int32 = CType(CType(gvwDevolucion.Rows(e.NewEditIndex).FindControl("lnkCodigo"), LinkButton).Text, Int32)
        devoluciones = Session("lista")
        Dim Ldevolucion = From v In devoluciones _
                            Where v.idDevolucion.ToString = id _
                            Select v
        lblTitulo.ToolTip = "Modificar"
        txtId.Text = Ldevolucion.ElementAt(0).idDevolucion
        txtfecha.Text = Ldevolucion.ElementAt(0).fchDevolucion
        txtMontoPenalidad.Value = Ldevolucion.ElementAt(0).montPenalidad
        selMotivoDevolucion.SelectedIndex = Ldevolucion.ElementAt(0).EmotDevInmueble.idMotDevInmueble
        mpDetalle.Show()
    End Sub
    Private Sub cargarMotivoDevolucion()
        selMotivoDevolucion.DataSource = RmotDevInmueble.SeleccionarTodoXEstado(Me.Master.descEmpresa, True)
        selMotivoDevolucion.DataTextField = "descMotDevInmueble"
        selMotivoDevolucion.DataValueField = "idMotDevInmueble"
        selMotivoDevolucion.DataBind()
    End Sub
    Private Sub cargarDevolucion()
        devoluciones = Rdevolucion.SeleccionarTodo(Me.Master.descEmpresa, False, Me.Master.idProyecto, Me.Master.idEtapa)
        Session("lista") = devoluciones
        If Not devoluciones Is Nothing Then
            gvwDevolucion.DataSource = devoluciones
            gvwDevolucion.DataBind()
        End If
    End Sub
    Protected Sub btnGuardar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGuardar.Click
        If selMotivoDevolucion.SelectedIndex > 0 Then
            Dim jsMensaje As String = Nothing
            Dim pDevolucion As Edevolucion = Nothing
            If lblTitulo.ToolTip = "Modificar" Then
                pDevolucion = New Edevolucion
                With pDevolucion
                    .idProyecto = Me.Master.idProyecto
                    .idEtapa = Me.Master.idEtapa
                    .idDevolucion = txtId.Text
                    .EmotDevInmueble = New EmotDevInmueble
                    .EmotDevInmueble.idMotDevInmueble = selMotivoDevolucion.SelectedIndex
                    .montPenalidad = txtMontoPenalidad.Value
                    .fchDevolucion = txtfecha.Text
                    .idUsuario = Me.Master.idUsuario
                End With
                Rdevolucion.Editar(Me.Master.descEmpresa, pDevolucion)
                jsMensaje = "<script>javascript:alert(' Se modifico correctamente.');</script>)"
                Controls.Add(New LiteralControl(jsMensaje))
                cargarDevolucion()
            End If
            lblTitulo.ToolTip = "Modificar"
        End If
    End Sub
    Protected Sub btnBuscar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnBuscar.Click
        If txtFchInicio.Text.Length > 0 AndAlso txtFchFin.Text.Length > 0 Then
            Dim devolucion As New Edevolucion
            With devolucion
                .idProyecto = Me.Master.idProyecto
                .idEtapa = Me.Master.idEtapa
                .fchInicio = txtFchInicio.Text
                .fchFin = txtFchFin.Text
                .filtro = txtCliente.Value
            End With
            'separaciones = RseparacionVenta.ReporteSeparacion(Me.Master.descEmpresa, False, venta)
            devoluciones = Rdevolucion.SeleccionarFiltro(Me.Master.descEmpresa, False, Me.Master.idProyecto, Me.Master.idEtapa, devolucion)
            Session("lista") = devoluciones
            If Not devoluciones Is Nothing Then
                gvwDevolucion.DataSource = devoluciones
                gvwDevolucion.DataBind()
                Upndevolucion.Update()
               
            End If
        End If
    End Sub
    Protected Sub btnExportar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExportar.Click
        devoluciones = Session("lista")
        If Not devoluciones Is Nothing Then
            Dim fileName As String = "ConsultaProforma{0}.xls"
            fileName = String.Format(fileName, DateTime.Now.ToShortDateString())
            Dim Response As HttpResponse = HttpContext.Current.Response
            Response.ContentType = "application/vnd.ms-excel"
            Response.Charset = "UTF-8"
            Response.ContentEncoding = System.Text.Encoding.Default
            Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName)

            Response.Write("N° Correlativo") : Response.Write(vbTab)
            Response.Write("F. Separacion/Venta") : Response.Write(vbTab)
            Response.Write("Nombre Cliente") : Response.Write(vbTab)
            Response.Write("Dni Cliente") : Response.Write(vbTab)
            Response.Write("Nombre Bloque") : Response.Write(vbTab)
            Response.Write("Nro Inmueble") : Response.Write(vbTab)
            Response.Write("Motivo Devolución") : Response.Write(vbTab)
            Response.Write("Tipo Gestión") : Response.Write(vbTab)
            Response.Write("Monto Penalidad") : Response.Write(vbTab)
            Response.Write("Fecha Devolución") : Response.Write(vbTab)
            Response.Write(vbCrLf)

            Dim value As String
            Dim varIdDevolucion As Int32 = 0
            For Each devolucion In devoluciones
                value = devolucion.idDevolucion
                varIdDevolucion = devolucion.idDevolucion
                Response.Write(value) : Response.Write(vbTab)

                value = devolucion.fchSeparacionVenta
                Response.Write(value) : Response.Write(vbTab)

                value = devolucion.Ecliente.nombre + " " + devolucion.Ecliente.apePaterno + " " + devolucion.Ecliente.apeMaterno
                Response.Write(value) : Response.Write(vbTab)

                value = devolucion.nroDocumento
                Response.Write(value) : Response.Write(vbTab)

                value = devolucion.nombreTpoInmueble
                Response.Write(value) : Response.Write(vbTab)

                value = devolucion.nroInmueble
                Response.Write(value) : Response.Write(vbTab)

                value = devolucion.EmotDevInmueble.descMotDevInmueble
                Response.Write(value) : Response.Write(vbTab)

                value = devolucion.tpoGestion
                Response.Write(value) : Response.Write(vbTab)

                value = devolucion.montPenalidad
                Response.Write(value) : Response.Write(vbTab)

                value = devolucion.fchDevolucion
                Response.Write(value) : Response.Write(vbCrLf)

            Next
            Response.End()
        Else
            Dim jsMensaje As String = Nothing
            jsMensaje = "<script>javascript:alert(' La consulta no pudo ser procesada.  Por favor inténtelo de nuevo.');</script>)"
            Controls.Add(New LiteralControl(jsMensaje))
        End If
    End Sub
End Class
